const puppeteer = require('puppeteer')
// scrape 刮，擦坏
let scrape = async () => {
  // 启动puppeteer，即创建一个chrome实例
  // const browser = await puppeteer.launch({headless: false})
  const browser = await puppeteer.launch({
    headless: false,
    defaultViewport: null,
    args: ['--start-maximized'],
    ignoreDefaultArgs: ['--enable-automation']
  });
  // 打开一个新页面
  const page = await browser.newPage()
  // 导航到要爬取数据的页面
  // await page.goto('https://www.zhihu.com/')
  await page.goto('https://www.tmall.com/')
  // page.click（selector[,options]) 元素的点击事件，点击该元素，跳转至详情界面
  /**
   * await page.click('.interact-item')
   await page.waitFor(1000)
   await page.waitForSelector('#mallPage')
   // #\35 792471540 > div > a:nth-child(10)
   const title33 = await page.$eval('#\\35 792471540 > div > a:nth-child(10)', el => el.innerText)
   console.log(title33);
   return
   */

  const input = await page.$('#mq')
  input.type('手机')
  await page.keyboard.press('Enter')
  const btn = await page.$('#mallSearch > form > fieldset > div > button')
  btn.click()
  await page.waitForSelector('#J_ItemList > div:nth-child(1) > div')
  const title = await page.$eval('#J_ItemList > div:nth-child(1) > div > p.productPrice > em', el => el.innerText)
  console.log(title);
  // return

  // 获取对应元素的数据，如标题价格等，用page.evaluate()函数，次函数有内置的获取dom方法，如document.querySelector()
  // const result = await page.evaluate( () => {
  //   let title = document.querySelector('._1kQF0')
  //   return title
  // })
  // console.log(result);

  /**
   * 获取元素，取值
   */
  console.log(5555555);
  console.log(44444444);
  //
  // const result = await page.$('._1kQF0')
  // await page.waitFor(1000)
  //
  // console.log(result);

  // 浏览器延时关闭
  // // 关闭浏览器
  // await browser.close()
}
scrape().then(res => {
  console.log(4444);
  console.log(res);
})
